09a367d2002927bd281a67afef577668be672ac3,src/main/org/codehaus/groovy/transform/StaticTypesTransformation.java,Visitor,visitMethodCallExpression,#MethodCallExpression#,265
Before Change
addStaticTypeError("cannot resolve dynamic method name at compile time.", call.getMethod());
} else {
ClassNode[] args = getArgumentTypes(InvocationWriter.makeArgumentList(call.getArguments()), classNode);
MethodNode mn = findMethodOrFail(call, getType(call.getObjectExpression(), classNode), call.getMethodAsString(), args);
if (mn==null) return;
storeType(call, mn.getReturnType());
}
}
After Change
addStaticTypeError("cannot resolve dynamic method name at compile time.", call.getMethod());
} else {
ClassNode[] args = getArgumentTypes(InvocationWriter.makeArgumentList(call.getArguments()), classNode);
final Expression objectExpression = call.getObjectExpression();
final ClassNode receiver = getType(objectExpression, classNode);
MethodNode mn = findMethod(call, receiver, name, args);
if (mn==null) {
if (objectExpression instanceof VariableExpression) {
VariableExpression variableExpression = (VariableExpression) objectExpression;
if (!temporaryIfBranchTypeInformation.isEmpty()) {
final Map<Expression, List<ClassNode>> tempo = temporaryIfBranchTypeInformation.peek();